package com.qingcloud.df.executor.model;

import com.qingcloud.df.executor.enums.SystemValueTypeEnum;
import com.qingcloud.df.sdk.component.config.ParameterConfigItem;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * <p>
 * 组件实例参数
 * </p>
 *
 * @author wangjinnan
 * @since 2021-01-12
 */
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class ComponentInstanceParameter implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 参数组
     */
    private Integer groupId;

    /**
     * 参数中文名称
     */
    private String name;

    /**
     * 参数的key
     */
    private String key;

    /**
     * 参数的value
     */
    private String value;

    /**
     * 参数值类型
     */
    private Integer valueType;

    /**
     * 转换成组件参数配置对象
     *
     * @return 参数配置对象
     */
    public static ParameterConfigItem convert2ParameterConfigItem(ComponentInstanceParameter parameter) {
        ParameterConfigItem configItem = new ParameterConfigItem();
        configItem.setName(parameter.getName());
        configItem.setKey(parameter.getKey());
        configItem.setValue(parameter.getValue());
        configItem.setValueType(SystemValueTypeEnum.findNameByCode(parameter.getValueType()));
        return configItem;
    }

}
